package src.data.daos;


import java.util.HashSet;
import java.util.Set;

import org.hibernate.Criteria;
import org.hibernate.criterion.Restrictions;

import src.data.hbt.HibernateProvider;
import src.domain.Cuenta;
import src.domain.Deposito;
import src.domain.Extraccion;



public class ExtraccionDAO {
	private HibernateProvider provider;

	private static ExtraccionDAO instance = null;

	public static ExtraccionDAO getInstance() {
		if (instance == null)
			instance = new ExtraccionDAO();
		return instance;
	}
	
	private ExtraccionDAO() {
		this.provider = HibernateProvider.getInstance();

	}
	
	@SuppressWarnings("unchecked")
	public Set<Extraccion> getDepositos(Cuenta cuenta){
		Criteria criteria = provider.getSession().createCriteria(Extraccion.class).add(Restrictions.like("cuentaId", cuenta.getCuentaId()));
		Set<Extraccion> set = new HashSet<Extraccion>();
		set.addAll(criteria.list());
		
		return set;
	}
	
	public void save(Extraccion extraccion) {
		provider.getSession().save(extraccion);
		
	}

	public void saveOrUpdate(Extraccion extraccion) {
		provider.getSession().saveOrUpdate(extraccion);
		
	}

	public void update(Extraccion extraccion) {	
		provider.getSession().update(extraccion);		
	}

	public void delete(Deposito extraccion) {
		provider.getSession().delete(extraccion);
	}
}